"""
用于实现聊天室的功能
这是一个服务器端:需要考虑到聊天用户之间的关系
比如:a和b聊天,c看不见(接收不到)  a和c聊天，b接收不到  还有就是三者之间聊天都可以接收到
ab c
ac b
bc a
abc
需要配置四种房间
暂时用gevent来作为websocket的服务器承载
"""
from gevent import pywsgi
import socketio

sio = socketio.Server()
app = socketio.WSGIApp(sio)


@sio.on("test")
def my_event(sid, data):
    print("test事件监听的sid是 {}".format(sid))
    print("test事件监听的data是 {}".format(data))


@sio.event()
def message(sid, data):
    print("message事件监听的sid是 {}".format(sid))
    print("message事件监听的data是 {}".format(data))


def server_result(data):
    print("server端message事件的返回状况 {}".format(data))


@sio.event
def connect(sid, environ):  # environ参数是包含请求的信息
    print("有client连接 {}".format(sid))
    # sio.emit("message", data="server send message", callback=server_result)  # callback传入的是一个函数的引用


@sio.event
def disconnect(sid):
    print(sid)
    print("有client断开 {}".format(sid))


if __name__ == '__main__':
    pywsgi.WSGIServer(('0.0.0.0', 5000), app).serve_forever()  # 通过gevent来启动5000端口的socket服务
